home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Very Best of Atari Inside
/
The Very Best of Atari Inside 1.iso
/
mint
/
mntlib43
/
mntlib
/
libgcc1.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-31
|
4KB
|
252 lines
#ifndef SItype
#define SItype long int
#endif
#ifndef FLOAT_VALUE_TYPE
#define FLOAT_VALUE_TYPE long int
#endif
#ifndef INTIFY
#define INTIFY(FLOATVAL) (intify.f = (FLOATVAL), intify.i)
#endif
#ifndef FLOATIFY
#define FLOATIFY(INTVAL) ((INTVAL).f)
#endif
#ifndef FLOAT_ARG_TYPE
#define FLOAT_ARG_TYPE union flt_or_int
#endif
union flt_or_value { FLOAT_VALUE_TYPE i; float f; };
union flt_or_int { long int i; float f; };
#ifndef perform_lshrsi3
#define perform_lshrsi3(a, b) return a >> b
#endif
#ifndef perform_lshlsi3
#define perform_lshlsi3(a, b) return a << b
#endif
#ifndef perform_ashrsi3
#define perform_ashrsi3(a, b) return a >> b
#endif
#ifndef perform_ashlsi3
#define perform_ashlsi3(a, b) return a << b
#endif
#ifndef perform_fixsfsi
#define perform_fixsfsi(a) return (SItype) a
#endif
#ifndef perform_floatsisf
#define perform_floatsisf(a) return INTIFY ((float) a)
#endif
/* Note that eqdf2 returns a value for "true" that is == 0,
nedf2 returns a value for "true" that is != 0,
gtdf2 returns a value for "true" that is > 0,
and so on. */
#ifndef perform_eqdf2
#define perform_eqdf2(a, b) return !(a == b)
#endif
#ifndef perform_nedf2
#define perform_nedf2(a, b) return a != b
#endif
#ifndef perform_gtdf2
#define perform_gtdf2(a, b) return a > b
#endif
#ifndef perform_gedf2
#define perform_gedf2(a, b) return (a >= b) - 1
#endif
#ifndef perform_ltdf2
#define perform_ltdf2(a, b) return -(a < b)
#endif
#ifndef perform_ledf2
#define perform_ledf2(a, b) return 1 - (a <= b)
#endif
#ifndef perform_eqsf2
#define perform_eqsf2(a, b) return !(a == b)
#endif
#ifndef perform_nesf2
#define perform_nesf2(a, b) return a != b
#endif
#ifndef perform_gtsf2
#define perform_gtsf2(a, b) return a > b
#endif
#ifndef perform_gesf2
#define perform_gesf2(a, b) return (a >= b) - 1
#endif
#ifndef perform_ltsf2
#define perform_ltsf2(a, b) return -(a < b)
#endif
#ifndef perform_lesf2
#define perform_lesf2(a, b) return 1 - (a <= b);
#endif
SItype
__lshrsi3 (a, b)
unsigned SItype a, b;
{
perform_lshrsi3 (a, b);
}
SItype
__lshlsi3 (a, b)
unsigned SItype a, b;
{
perform_lshlsi3 (a, b);
}
SItype
__ashrsi3 (a, b)
SItype a, b;
{
perform_ashrsi3 (a, b);
}
SItype
__ashlsi3 (a, b)
SItype a, b;
{
perform_ashlsi3 (a, b);
}
/* Note that eqdf2 returns a value for "true" that is == 0,
nedf2 returns a value for "true" that is != 0,
gtdf2 returns a value for "true" that is > 0,
and so on. */
SItype
__eqdf2 (a, b)
double a, b;
{
/* Value == 0 iff a == b. */
perform_eqdf2 (a, b);
}
SItype
__nedf2 (a, b)
double a, b;
{
/* Value != 0 iff a != b. */
perform_nedf2 (a, b);
}
SItype
__gtdf2 (a, b)
double a, b;
{
/* Value > 0 iff a > b. */
perform_gtdf2 (a, b);
}
SItype
__gedf2 (a, b)
double a, b;
{
/* Value >= 0 iff a >= b. */
perform_gedf2 (a, b);
}
SItype
__ltdf2 (a, b)
double a, b;
{
/* Value < 0 iff a < b. */
perform_ltdf2 (a, b);
}
SItype
__ledf2 (a, b)
double a, b;
{
/* Value <= 0 iff a <= b. */
perform_ledf2 (a, b);
}
SItype
__fixsfsi (a)
FLOAT_ARG_TYPE a;
{
union flt_or_value intify;
perform_fixsfsi (FLOATIFY (a));
}
FLOAT_VALUE_TYPE
__floatsisf (a)
SItype a;
{
union flt_or_value intify;
perform_floatsisf (a);
}
SItype
__eqsf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
union flt_or_int intify;
/* Value == 0 iff a == b. */
perform_eqsf2 (FLOATIFY (a), FLOATIFY (b));
}
SItype
__nesf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
union flt_or_int intify;
/* Value != 0 iff a != b. */
perform_nesf2 (FLOATIFY (a), FLOATIFY (b));
}
SItype
__gtsf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
union flt_or_int intify;
/* Value > 0 iff a > b. */
perform_gtsf2 (FLOATIFY (a), FLOATIFY (b));
}
SItype
__gesf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
union flt_or_int intify;
/* Value >= 0 iff a >= b. */
perform_gesf2 (FLOATIFY (a), FLOATIFY (b));
}
SItype
__ltsf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
union flt_or_int intify;
/* Value < 0 iff a < b. */
perform_ltsf2 (FLOATIFY (a), FLOATIFY (b));
}
SItype
__lesf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
union flt_or_int intify;
/* Value <= 0 iff a <= b. */
perform_lesf2 (FLOATIFY (a), FLOATIFY (b));
}